const { logError } = require("../../utils/log");

Component({
  // 外部可传入的属性（类似参数）
  properties: {
    title: {
      type: String,
      value: "小幸运转盘" // 默认值
    }
  },

  // 组件内部数据
  data: {
    navHeight: 44, // 默认导航栏高度
    statusBarHeight: 20, // 状态栏高度
    capsuleButtonInfo: null // 胶囊按钮信息
  },

  // 组件生命周期
  lifetimes: {
    attached: function() {
      this.calculateNavHeight();
    }
  },

  // 组件方法
  methods: {
    // 计算导航栏高度和胶囊按钮位置
    calculateNavHeight: function() {
      try {
        // 获取系统信息
        const systemInfo = wx.getSystemInfoSync();
        const statusBarHeight = systemInfo.statusBarHeight || 20;
        
        // 获取胶囊按钮位置信息
        const menuButtonBounding = wx.getMenuButtonBoundingClientRect();
        
        // 使用公式计算导航栏高度：
        // 导航栏高度 = 状态栏高度 + (胶囊顶部到状态栏底部的距离) × 2 + 胶囊高度
        let navHeight = 44; // 默认值
        if (menuButtonBounding) {
          const distance = menuButtonBounding.top - statusBarHeight;
          navHeight = statusBarHeight + distance * 2 + menuButtonBounding.height;
        }
        
        this.setData({
          navHeight: navHeight,
          statusBarHeight: statusBarHeight,
          capsuleButtonInfo: menuButtonBounding
        });
        
        // 通过触发事件将导航栏高度和其他信息传递给父组件
        this.triggerEvent('navheightchange', { 
          navHeight: navHeight,
          statusBarHeight: statusBarHeight,
          capsuleButtonInfo: menuButtonBounding
        });
      } catch (error) {
        logError('计算导航栏高度失败:', error);
      }
    }
  }
})